import java.util.HashMap;
import java.util.Map;

public class Code_53 {
    public int maxSubArray(int[] nums) {
        int pre=nums[0]; //pre存储
        int maxNum=nums[0];
        int current;
        for (int i = 1; i < nums.length; i++) {
            current = pre + nums[i]; // 以第i个数结尾的连续子数组的最大和
            pre =Math.max(nums[i],current); // 如果前面的连续子数组的最大和加上num[i]，还没有num[i]本身大，则num[i]为以第i个数结尾的连续子数组的最大和。否则就把i加入当前连续子数组。
            maxNum = Math.max(maxNum,pre);
        }
        return maxNum;
    }
}
